\ProvidesPackage{myoldbeamercommand}
%\contentsMarginLeft{0.001}
%设置目录幻灯片内容的左页边距为页宽的0.0
%若想改变宽度，可以重设该值：
%renewcommand{\contentsMarginLeft}{0.3}
\newcommand{\contentsMarginLeft}{0.001}
% 当前block环境标题
\newcommand{\currentblocktitle}{}
% 输出一个蓝色方框
\newcommand{\mysquare}{$\color{blue}\mathbf{\square}$}
\newcounter{blockcounter}
% 输出下一个计数器文本
\newcommand\myblockcounter{
  \stepcounter{blockcounter}
（\theblockcounter）
}
% 使blockcounter计数器+1
\newcommand\stepmyblockcounter{
  \stepcounter{blockcounter}
}
% 输出计数器下一个数值文本
\newcommand\mycurrentblockcounter{
（\theblockcounter）
}

\newcommand\resetmyblockcounter{
  \setcounter{blockcounter}{0}
}
%\outsectitle
%输出当前section编号和标题
\newcommand{\outsectitle}{
  \setbeamertemplate{section in toc}[sections numbered]
  \insertsectionnumber\quad\insertsection
}
%\outsubsectitle
%输出当前subsection编号和标题
\newcommand{\outsubsectitle}{
  \insertsectionnumber .\insertsubsectionnumber\quad\insertsubsection
}
%输出当前部分的编号和标题
\newcommand{\outparttitle}{
  第\insertpartnumber 部分\quad\insertpart 
}
%输出高亮显示当前标题的完整目录幻灯片
\newcommand{\outcurcontentsframe}{
  \begin{frame}{\;\outparttitle}
    \outtowcolumns{\contentsMarginLeft}{}{
      \tableofcontents[currentsection,currentsubsection]
    }
  \end{frame}
}
%输出高亮显示当前标题的完整目录幻灯片(不包含部分标题)
\newcommand{\outcurcontentsframenopart}{
  \begin{frame}{\; 目录}
    \outtowcolumns{\contentsMarginLeft}{}{
      \tableofcontents[currentsection,currentsubsection]
    }
  \end{frame}
}
%\outcontentsframe
%输出当前部分的完整目录幻灯片,包括本部分的标题，目录
\newcommand{\outcontentsframe}{
  \begin{frame}{\outparttitle}
    \outtowcolumns{\contentsMarginLeft}{}{
      \tableofcontents
    }
  \end{frame}
}
% \outcontentsframenopart
% 输出幻灯片标题为“目录”的完整幻灯片页
\newcommand{\outcontentsframenopart}{
  \begin{frame}{\; 目录}
      \outtowcolumns{\contentsMarginLeft}{}{
	\tableofcontents
      }
  \end{frame}
}

%输出两列板式内容
% #1：左边宽度占比，例如0.5
% #2: 左列内容
% #3: 右列内容
\newcommand{\outtowcolumns}[3]{%
    \begin{columns}
      \column{#1\textwidth}
      #2
      \column{\xinteval{1-#1}\textwidth}
      #3
    \end{columns}
}
%输出block环境及内容
% #1:标题,可选，若没有提供，以\currentblocktitle作为标题
% #2:内容
\NewDocumentCommand\outblock{om}{%
  \begin{block}{%
    \IfNoValueTF{#1}{\currentblocktitle}{#1}}%
    #2
  \end{block}
}
%输出当前部分标题页幻灯片
\newcommand{\outpartpage}{
  \begin{frame}
    \partpage
  \end{frame}
}
%为当前subsection生成一个frame,其标题为当前subsection标题
% #1:frame中的内容
% 调用格式：
% \outframeforcursubsection{<frame contents>}
\newcommand{\outframeforcursubsection}[1]{
  \begin{frame}{\outsubsectitle}
   #1
  \end{frame}
}
% 为当前part生成用于小结的frame
% 调用格式：
% \outsumaryframeforcurpart{<sumary contents>}
\newcommand{\outsumaryframeforcurpart}[1]{
  \begin{frame}{\outparttitle : 小结}
    #1
  \end{frame}
}
% 为当前section生成frame, 里面的内容垂直居中
% 调用格式:
% \outframeforcursection{<contents>}
\newcommand{\outframeforcursection}[1]{
    \begin{frame}{\outsectitle}
      #1
    \end{frame}
}
% 为当前section生成frame, 里面的内容靠上对齐
% 调用格式:
% \outframetforcursection{<contents>}
\newcommand{\outframetforcursection}[1]{
  \begin{frame}[t]{\outsectitle}
      #1
    \end{frame}
}

%给字体加上绿色
\newcommand{\alertgreen}[1]{
   {%
     \color{green!50!black}{#1}
   }%
}
%创建一个默认的标题页幻灯片
\newcommand{\outtitlepageframe}[1]{
  \begin{frame}
    \titlepage
    \centering
    \includegraphics[height=2cm]{#1}
  \end{frame}
}
%设置标题页幻灯片的各主要字段信息
% \settitlepageinfo{<title>}{<author-name>}{<author-institute>}{<date>}
\newcommand{\settitlepageinfo}[4]{
  \title{#1}
  \author{#2}
  \institute{#3}
  \date{#4}
}
%创建一个只在某一页中显示的带内容的block环境,标题为\currenttitle
%\outonlyblock{content}
\NewDocumentCommand\outonlyblock{m}{%
   \only<+>{
     \outblock{#1}
   }
}
%\outpart{<partname>}{<texfilename>}
% 相当于
% \part{<partname>}
% \outpartpage
% \outcontentsframe
% \input{<texfilename>}
\newcommand{\outpart}[2]{
  \part{#1}
  \outpartpage
  \outcontentsframe
  \input{#2}
}

%\outsection{<section-title>}{<texfilename>}
% 相当于：
% \section{<section-title>}
% \input{<texfilename>}
\newcommand{\outsection}[2]{
  \section{#1}
  \outcurcontentsframe
  \input{#2}
}

%\outuncoverblock{<block-title>}{<block-content>}
%在同一张幻灯片中的下一行中输出新的内容块
%相当于：
% \uncover<+->{\outblock{<block-title>}{<block-content>}}
\newcommand{\outuncoverblock}[2]{
  \uncover<+->{
    \outblock[#1]{#2}
  }
}
